﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using IQReportes.Utils;

namespace IQReportes.Models
{
    //Usado para el cuadrante 4 sobre montos
    public class ConsolidadoMontoTransaccion : ConsolidadoGeneral
    {
        [Key]
        public int idConsolidado { get; set; }
        public DateTime dtFecha { get; set; }
        public string vcSemana { get; set; }
        public string vcMes { get; set; }
        public int? inAno { get; set; }
        public double dbCargo { get; set; }
        public double dbAbono { get; set; }
        public double dbTransferencia { get; set; }
        public int idEstado { get; set; }
        public string vcNombreEstadoTransaccion { get; set; }
        public int inPeriodo { get; set; } //varia del 1 al 7 segun si es de ayer, semanal, mensual, etc...
        public string vcCodDir { get; set; }
        public string stFecha { get; set; }

        public double dbMonto
        {
            get { return (dbAbono - dbCargo); }
            //set { db = value; }
        }

        //public string[] obtenerCabecera(int numeroFila,int nivel)
        //{
        //    List<String> cabecera = new List<String>();
        //    if (numeroFila == 1)
        //    {
        //        cabecera.Add("Fecha");
        //        if (nivel == 1)
        //        {
        //            cabecera.Add("DIR");
        //        }
        //        else
        //        {
        //            cabecera.Add("Estado");
        //        }
        //        cabecera.Add("Abono");
        //        cabecera.Add("Cargo");
        //        cabecera.Add("Transferencias");
        //        cabecera.Add("Montos");
        //    }
        //    else
        //    {
        //        cabecera.Add("string");
        //        cabecera.Add("string");
        //        cabecera.Add("number");
        //        cabecera.Add("number");
        //        cabecera.Add("number");
        //        cabecera.Add("number");
        //    }
        //    return cabecera.ToArray();
            
        //}

        public static string[] obtenerCabecera(int numeroFila, int nivel)
        {
            List<String> cabecera = new List<String>();
            if (numeroFila == 1)
            {
                cabecera.Add("Fecha");
                if (nivel == 1)
                {
                    cabecera.Add("DIR");
                }
                else
                {
                    cabecera.Add("Estado");
                }
                cabecera.Add("Abono");
                cabecera.Add("Cargo");
                cabecera.Add("Transferencias");
                cabecera.Add("Montos");
            }
            else
            {
                cabecera.Add("string");
                cabecera.Add("string");
                cabecera.Add("number");
                cabecera.Add("number");
                cabecera.Add("number");
                cabecera.Add("number");
            }
            return cabecera.ToArray();

        }

        public string[] obtenerArreglo(int tipoChart, int nivel)
        {
            List<String> listaCadenas = new List<String>();
            
            listaCadenas.Add(stFecha);
            
            if (tipoChart == Constantes.TABLECHART && nivel != 1)
            {
                listaCadenas.Add(this.vcNombreEstadoTransaccion);
            }
            if (tipoChart == Constantes.TABLECHART && nivel == 1)
            {
                listaCadenas.Add(this.vcCodDir);
            }

            listaCadenas.Add(this.dbAbono.ToString());
            listaCadenas.Add(this.dbCargo.ToString());
            listaCadenas.Add(this.dbTransferencia.ToString());

            if (tipoChart == Constantes.TABLECHART)
            {
                listaCadenas.Add(this.dbMonto.ToString());
            }

            //listaCadenas.Add()

            return listaCadenas.ToArray();
        }
    }
}